package com.vlong.town.service.experience;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.vlong.town.entity.experience.Experience;
import com.vlong.town.mapper.experience.ExperienceMapper;
import com.vlong.town.util.common.TownConstant;

/**
 * @author Assassin
 */
@Service
public class ExperienceService{

	// Fields

	@Autowired
	private ExperienceMapper experienceMapper;// DAO接口

	// Methods

   /**
	* 添加
	* @param experienceId 主键
	* @param townId 城镇id
	* @param state 状态信息-数据状态[1-正常 | 2-删除]
	* @param status 状态信息-文化活动状态[1-已发布]
	* @param title  基础信息-文化活动标题
	* @param content 基础信息-文化活动内容
	* @param thumbnail 基础信息-缩略图
	* @param desc 基础信息-文化活动简介
	* @param createTime 时间信息-发布时间
	* @param updateTime 时间信息-更新时间
	* @return Long experienceId 添加后的数据库主键值
	*/
	@Transactional
	public Long add(Long townId,String title, String content, String desc, String thumbnail) {
		// 构造参数实体
		Experience experience = new Experience();
		experience.setExperienceId(null);// Set 主键
		experience.setTownId(townId);// Set 城镇id
		experience.setState(1);// Set 状态信息-数据状态[1-正常 | 2-删除]
		experience.setStatus(1);// Set 状态信息-文化活动状态[1-已发布]
		experience.setTitle(title);// Set  基础信息-文化活动标题
		experience.setContent(content);// Set 基础信息-文化活动内容
		experience.setThumbnail(thumbnail);// Set 基础信息-缩略图
		experience.setDesc(desc);// Set 基础信息-文化活动简介
		experience.setCreateTime(System.currentTimeMillis());// Set 时间信息-发布时间
		experience.setUpdateTime(null);// Set 时间信息-更新时间
		// 调用DAO接口
		this.experienceMapper.insert(experience);
		return experience.getExperienceId();
	}

   /**
	* 删除
	* @param experienceId 主键值
	*/
	@Transactional
	public void delete(Long experienceId) {
		// 调用DAO接口
		this.experienceMapper.delete(experienceId);
	}

   /**
	* 更新
	* @param experienceId 主键
	* @param townId 城镇id
	* @param state 状态信息-数据状态[1-正常 | 2-删除]
	* @param status 状态信息-文化活动状态[1-已发布]
	* @param title  基础信息-文化活动标题
	* @param content 基础信息-文化活动内容
	* @param thumbnail 基础信息-缩略图
	* @param desc 基础信息-文化活动简介
	* @param createTime 时间信息-发布时间
	* @param updateTime 时间信息-更新时间
	*/
	@Transactional
	public void edit(Long experienceId, Long townId, Integer state, Integer status, String title, String content, String thumbnail, String desc, Long createTime, Long updateTime) {
		// 构造参数实体
		Experience experience = new Experience();
		experience.setExperienceId(experienceId);// Set 主键
		experience.setTownId(townId);// Set 城镇id
		experience.setState(state);// Set 状态信息-数据状态[1-正常 | 2-删除]
		experience.setStatus(status);// Set 状态信息-文化活动状态[1-已发布]
		experience.setTitle(title);// Set  基础信息-文化活动标题
		experience.setContent(content);// Set 基础信息-文化活动内容
		experience.setThumbnail(thumbnail);// Set 基础信息-缩略图
		experience.setDesc(desc);// Set 基础信息-文化活动简介
		experience.setCreateTime(createTime);// Set 时间信息-发布时间
		experience.setUpdateTime(updateTime);// Set 时间信息-更新时间
		// 调用DAO接口
		this.experienceMapper.update(experience);
	}

   /**
	* 主键查询
	* @param experienceId 主键值
	* @return Experience 实体
	*/
	@Transactional
	public Experience queryById(Long experienceId) {
		// 调用DAO接口
		return this.experienceMapper.selectById(experienceId);
	}

   /**
	* 根据条件查询列表
	* @param experienceId 主键
	* @param townId 城镇id
	* @param state 状态信息-数据状态[1-正常 | 2-删除]
	* @param status 状态信息-文化活动状态[1-已发布]
	* @param title  基础信息-文化活动标题
	* @param content 基础信息-文化活动内容
	* @param thumbnail 基础信息-缩略图
	* @param desc 基础信息-文化活动简介
	* @param createTime 时间信息-发布时间
	* @param updateTime 时间信息-更新时间
	* @return List<Experience> 实体List
	*/
	@Transactional
	public List<Experience> queryList(Long experienceId, Long townId, Integer state, Integer status, String title, String content, String thumbnail, String desc, Long createTime, Long updateTime) {
		// 构造参数实体
		Experience experience = new Experience();
		experience.setExperienceId(experienceId);// Set 主键
		experience.setTownId(townId);// Set 城镇id
		experience.setState(state);// Set 状态信息-数据状态[1-正常 | 2-删除]
		experience.setStatus(status);// Set 状态信息-文化活动状态[1-已发布]
		experience.setTitle(title);// Set  基础信息-文化活动标题
		experience.setContent(content);// Set 基础信息-文化活动内容
		experience.setThumbnail(thumbnail);// Set 基础信息-缩略图
		experience.setDesc(desc);// Set 基础信息-文化活动简介
		experience.setCreateTime(createTime);// Set 时间信息-发布时间
		experience.setUpdateTime(updateTime);// Set 时间信息-更新时间
		// 调用DAO接口
		return this.experienceMapper.selectList(experience);
	}

}